package kz.kstu.ds.utils;

import javax.swing.*;
import java.awt.*;
import java.net.URL;

/**
 * Date: 03.11.12
 * Time: 22:14
 *
 * @author Oleg Anastassov
 */
public class GUIFactory {

    private GUIFactory() {
    }

    /**
     * Получает изображение из PNG-файла для размещения
     * на элементах управления (кнопках, текстовых полях и т.д.)
     *
     * @param icon PNG-файл
     * @return изображение из PNG-файла
     */
    public static ImageIcon getIcon(GUIIcon icon) {
        URL url = GUIFactory.class.getResource(icon.getPath());
        if (url != null) {
            return new ImageIcon(url);
        } else {
            throw new IllegalArgumentException(
                    "Error loading icon =\'" + icon.getPath() + "\'"
            );
        }
    }

    /**
     * Получает {@link java.awt.Image} из PNG-файла.
     *
     * @param icon PNG-файл
     * @return изображение из PNG-файла
     */
    public static Image getImage(GUIIcon icon) {
        Image image = getIcon(icon).getImage();
        return image == null ? null : image;
    }


}
